<!DOCTYPE html>
<html>
<head>
<style>
#textDiv {
    height: 200px;
    width: 200px;
    border: 1px solid black;
    -webkit-writing-mode: vertical-rl;
}
</style>
<script src="../../resources/js-test.js"></script>
<script>
function runTest() {
    description('Testcase for bug <a href="https://bugs.webkit.org/show_bug.cgi?id=106452">106452</a>:  Caret positioned at the end of a text line (followed by an empty block) in vertical writing mode disappears when pressing the right/down arrow key.\nTo manually verify the issue, place the caret at the end of the text line and then press either the down or the right arrow key.');

    if (window.internals) {
        var testDiv = document.getElementById('textDiv');

        eventSender.mouseMoveTo(testDiv.offsetLeft + testDiv.offsetWidth - 5, testDiv.offsetTop);
        eventSender.mouseDown();
        eventSender.mouseUp();
        caretRectAtStart = internals.absoluteCaretBounds(document);

        eventSender.mouseMoveTo(testDiv.offsetLeft + testDiv.offsetWidth - 5, testDiv.offsetTop + testDiv.offsetHeight - 5);
        eventSender.mouseDown();
        eventSender.mouseUp();
        caretRectAtEnd = internals.absoluteCaretBounds(document);

        eventSender.keyDown("ArrowRight");
        caretRectRightKey = internals.absoluteCaretBounds(document);

        eventSender.keyDown("ArrowDown");
        caretRectDownKey = internals.absoluteCaretBounds(document);

        shouldBe("caretRectAtEnd.width", "caretRectAtStart.width");
        shouldBe("caretRectAtEnd.height", "caretRectAtStart.height");
        shouldBe("caretRectRightKey.width", "caretRectAtEnd.width");
        shouldBe("caretRectRightKey.height", "caretRectAtEnd.height");
        shouldBe("caretRectDownKey.width", "caretRectAtEnd.width");
        shouldBe("caretRectDownKey.height", "caretRectAtEnd.height");

        testDiv.style.display = 'none';
    }
}
</script>
</head>
<body onload="runTest();">
<div id="textDiv" contenteditable="true">Some text.<p></p></div>
<div id="description"></div>
<div id="console"></div>
</body>
</html>
